Cloud computing is internet-based computing in which shared computing resources such as processing power and digital data storage are provided on demand, and paid for according to their use, as is commonly done with electricity, water, and other utilities. Cloud computing sometimes takes the form of an application that a user can access and use through a web browser as if it were a program installed locally on the computer running the browser. The term “cloud” is used as a metaphor for the internet, which is sometimes depicted as a cloud in computer network diagrams. The front end of a cloud computing architecture is seen by end-users, namely, the customer's network or computer and the applications used on them to access the cloud via a user interface such as a web browser. The back end of the cloud computing architecture is the cloud, which may include various servers, routers, other computing devices, and data storage devices.
Many cloud computing infrastructures consist of services delivered through common data centers and built on servers. Commercial cloud computing offerings often provide quality of service guarantees. Sharing computing resources among multiple customers resources available despite variations in a given user's demands without buying enough to meet peak usage, and can also lead to more efficient resource utilization overall. Generally, cloud computing customers do not own the server hardware and other physical infrastructure, which allows them to avoid some capital expenditures. Instead, the customers rent computing resources from a cloud computing provider, and pay based on their usage of the resources. Many cloud computing offerings use a utility payment model analogous to traditional utility services such as electricity, while other offerings bill customers on a subscription basis.